1. Field of the Invention
This invention relates generally to compact discs, and more particularly efficient integrated circuit processing of sector components in high speed compact disc drives.
2. Description of the Related Art
Compact disc drives have become increasingly popular due to their ability to rapidly access large quantities of data as well as provide fine quality digital play-back. To meet the need for increased data transfer rates, compact disc "CD" hardware engineers have been designing CD drives that are able to transfer data at speeds that are many times the rotational speed of normal audio CD audio (e.g., 4.times., 10.times., 24.times., . . . 50.times. . . . etc.). For example, when a CD contains normal audio, the processing and play-back of the audio data is performed at 1.times. speeds. Accordingly, CD drives must be capable of operating at various speeds in order to appropriately process the data contained on a CD media, whether the CD media contains pure audio data or some other type of stored data.
Although there are many types of CD drives that provide different rotational speeds depending on the type of CD media being read, a new type of CD drive, which is capable of maintaining a constant high rotational speed irrespective of what the CD media has stored therein has recently been developed. The various advantages of such CD drives are discussed in greater detail in a co-pending U.S. Patent application entitled "An Improved Disc Drive", and having U.S. Ser. No. 08/917,792 (Attorney Docket No. ADAPP016/PTS-004/A), which is incorporated by reference herein. Because the CD is now capable of rotating at a constant high speed, the CD drive must be capable of reading and processing the data stored on the CD sufficiently fast to avoid introducing delays.
A common technique for increasing processing speeds has been to incorporate faster microprocessors, however, even fast processors have found reading and processing the CD media being spun at ever increasing speeds a challenge. By way of example, basic CD drive tasks, such as "seeking" to a location on the CD media in order to start play-back, are becoming increasingly difficult. In some cases, the microprocessor that is in charge of seeking to a particular "start" location on a CD media track has been found to be too slow to begin a play-back once the start location has been identified. That is, by the time the microprocessor determines that it has the correct start location, the CD media will have spun past its appropriate starting location. Many times, play-back may not start until a next sector is encountered.
FIGS. 1A through 1C illustrate, by way of background, techniques used to store data on a CD media 100. As is well known, the CD media 100 has a continuous track that spirals around the CD media 100, beginning at the inner region and ending at the outer edge. At the beginning of the track, a lead-in region typically contains a table of contents (TOC) that is used by the CD drive to ascertain where data recorded on the CD media 100 is located, in terms of minutes, seconds and frames (i.e., MSFs). As shown, the track of the CD media 100 is divided into many sectors 102, where each sector 102 contains 2352 bytes of data. The final sector 102 of the CD media 100 is then followed by a lead-out region, which signals the end of the CD media 100.
Besides the 2352 bytes of data, each sector also includes 98 subcode bytes, such that there are 98 bits of P-subcode, 98 bits of Q-subcode, 98 bits of R-subcode, 98 bits of S-subcode, 98 bits of T-subcode, 98 bits of U-subcode, 98 bits of V-subcode, and 98 bits of W-subcode. As is well known, each of these subcode bits may be used for a number of identification purposes, however, only the 98 bits of Q-subcode are used to ascertain the absolute subcode MSF of a particular sector 102. Of course, the Q-subcode is sometimes used for other processing and identification purposes as well.
FIG. 1B provides a closer examination of the typical contents of a sector that may be stored on a disc track. For example, each sector 102a-102n will typically contain a pre-gap region 104 that is typically used as a silent region. Generally, when the information stored on the disc is non-audio data, there is also a post-gap region (not shown), which may be silent or include some type of control information. Each sector 102a-102n also contains 98 "eight-to-fourteen modulation" (EFM) frames 106 that have both data and subcode components. As shown in FIG. 1C, each EFM frame 106 typically contains a SYNC field 120, a subcode field 122, a data field 124, an ECC (C1) field 126, a data field 128 and an ECC (C2) field. When an error in the data 124 or 128 is detected, a C1C2 Error Flag is triggered, thereby indicating that at least one of the data components 124 or 128 contain an error. In addition, because a sector 102 has 98 bytes of subcode, each EFM frame will contain 8 bits of subcode (i.e., a P-bit, a Q-bit, an R-bit, an S-bit, a T-bit, a U-bit, a V-bit, and a W-bit).
In operation, when a user wants to seek out to a particular subcode MSF on the CD media, a head actuator (not shown) moves an optical reading head to the radial position where the desired data is believed to be located. To identify the location, the optical reading head is required to sequentially read out one Q-bit at a time from a sector 102 until all 98 Q-bits have been read. Once all 98 Q-bits are read, the CD drive must perform microprocessor operations to determine whether those 98 Q-bits define a subcode MSF that is equal to the desired subcode MSF. Once the microprocessor determines that the subcode MSF values match, the CD drive must be quick enough to start the transfer of subcode data.
As mentioned earlier, as disc speeds continue to increase, the microprocessors that are assigned the task of processing the 98 bytes of subcode for each sector 102, will find it challenging, if not impossible, to begin the data transfer before the next sector is encountered. Referring to FIG. 1B, after all 98 bytes of subcode for sector 102a have been read by the CD drive, and the microprocessor performs the necessary operations to determine that sector 102a has the correct subcode MSF it was looking for (i.e., the found subcode MSF), the microprocessor is required to initiate the "start" of a subcode data transfer. However, even the fastest of microprocessors will experience that processing and finding the correct subcode MSF, and triggering a start after the correct subcode MSF is actually found is difficult without introducing delays.
Typically, when the data stored on the CD media 100 is other than audio, the data component also has its own associated MSF. However, typical CD drives internally separate a sector 102 that has just been read, into a subcode component and a data component. Unfortunately, these components are often times released from a holding buffer memory with offsets. For example, if the CD drive receives a subcode component having a subcode MSF.sub.1 at time t.sub.1 and a data component having a data MSF.sub.1 at time t.sub.2, the subcode component will necessarily be released before the data component. Although they have the same MSF.sub.1, they are received by the holding buffer memory at different times (e.g., at t.sub.1 and t.sub.2), and therefore, an offset is necessarily introduced. Although the offset may be attributed to a number of factors, one reason for the offset is that the subcode or the data components were processed through the CD drive logic and microprocessor at different speeds.
In situations where the data stored in the CD media 100 is graphics related, many times graphics information may be coded directly into the subcode (e.g., using at least some of the R-W bits). Consequently, if the subcode component is released before the data component, the data that is designed to interact with the subcode graphics will not match up. This problem is sometimes further complicated when offsets of several frames are produced, which may introduced play-back errors or degrade the quality of the data being read.
In view of the foregoing, there is a need for a compact disc drive that is capable of detecting when the data and subcode components are received, and temporarily delay transfers until the correct components are matched up.